import json
from configparser import ConfigParser

from utils.encryption import getDataAes

conf = ConfigParser()

conf.read("config.ini")

try:
    secret = conf.get('serve', 'secret')
    develop = conf.getboolean('serve', 'develop')
    ALLOWED_HOSTS = conf.get('serve', 'allow_host')

    mysql_host = conf.get("mysql", "host")
    mysql_port = conf.get("mysql", "port")
    mysql_user = conf.get("mysql", "user")
    mysql_password = conf.get("mysql", "password")
    mysql_database = conf.get("mysql", "database")

    redis_host = conf.get("redis", "host")
    redis_port = conf.get("redis", "port")
    redis_pwd = conf.get("redis", "password")
    redis_library = conf.get("redis", "library")

    MINIO_HOST = conf.get("minio", "client_host")
    MINIO_PORT = conf.get("minio", "client_port")
    MINIO_PWD = conf.get("minio", "password")
    MINIO_USER = conf.get("minio", "user")
    MINIO_WEB_HOST = conf.get("minio", "web_host")
    MINIO_WEB_PORT = conf.get("minio", "web_port")
    MINIO_PROXY = conf.get("minio", "web_proxy")
    MINIO_HTTP = conf.get("minio", "http")

except Exception as e:

    raise Exception('请检查配置文件，格式不正确')


try:
    ALLOWED_HOSTS = json.loads(ALLOWED_HOSTS)
except:
    raise Exception('请检查配置文件，格式不正确')

MYSQL_USER = getDataAes(secret, mysql_user)
MYSQL_PWD = getDataAes(secret, mysql_password)
REDIS_PWD = getDataAes(secret, redis_pwd)
MINIO_PWD = getDataAes(secret, MINIO_PWD)
MINIO_USER = getDataAes(secret, MINIO_USER)

if MYSQL_USER and MYSQL_PWD and REDIS_PWD and MINIO_PWD and MINIO_USER:
    pass
else:
    raise Exception('请检查配置文件，解密失败')


MYSQL_DATABASE = mysql_database
MYSQL_HOST = mysql_host
MYSQL_PORT = mysql_port
REDIS_HOST = redis_host
REDIS_PORT = redis_port
REDIS_LIBRARY = redis_library

DEBUG = develop

try:
    MINIO_BUCKET = conf.get('minio', 'bucket')
except:
    MINIO_BUCKET = 'media'
